import request from "@/utils/request";

const Active_BASE_URL = "/api/active";

class ActiveAPI {
  /**
   * 获取活动列表
   *
   * @param queryParams 查询参数（可选）
   * @returns 活动树形表格数据
   */
  static getList(queryParams?: ActiveQuery) {
    return request<any, ActiveVO[]>({
      url: `${Active_BASE_URL}`,
      method: "get",
      params: queryParams,
    });
  }

  /** 获取活动下拉列表 */
  static getOptions() {
    return request<any, OptionType[]>({
      url: `${Active_BASE_URL}/create`,
      method: "get",
    });
  }

  /**
   * 获取活动表单数据
   *
   * @param id 活动ID
   * @returns 活动表单数据
   */
  static getFormData(id: number) {
    return request<any, ActiveForm>({
      url: `${Active_BASE_URL}/${id}`,
      method: "get",
    });
  }

  /**
   * 新增活动
   *
   * @param data 活动表单数据
   * @returns 请求结果
   */
  static add(data: ActiveForm) {
    return request({
      url: `${Active_BASE_URL}`,
      method: "post",
      data: data,
    });
  }

  /**
   * 修改活动
   *
   * @param id 活动ID
   * @param data 活动表单数据
   * @returns 请求结果
   */
  static update(id: number, data: ActiveForm) {
    return request({
      url: `${Active_BASE_URL}/${id}`,
      method: "put",
      data: data,
    });
  }

  /**
   * 删除活动
   *
   * @param ids 活动ID，多个以英文逗号(,)分隔
   * @returns 请求结果
   */
  static deleteByIds(ids: string) {
    return request({
      url: `${Active_BASE_URL}/${ids}`,
      method: "delete",
    });
  }
  static setConfig(data: object) {
    return request({
      url: `${Active_BASE_URL}/setConfig`,
      method: "post",
      data: data,
    });
  }
  static getConfig(id: number) {
    return request({
      url: `${Active_BASE_URL}/getConfig/${id}`,
      method: "get",
    });
  }

  /**
   * 根据活动id获取活动日期列表
   * @param id
   */
  static getActiveDate(id: nunber) {
    return request({
      url: `${Active_BASE_URL}/getDate/${id}`,
      method: "get",
    });
  }

  /**
   * 根据活动id生成活动分享二维码
   * @param id
   */
  static createQRCode(id: number) {
    return request({
      url: `${Active_BASE_URL}/createQRCode/${id}`,
      method: "get",
    });
  }

  /**
   * 获取视频压缩地址
   * @param answerId
   */
  static getFiles(activeId: number) {
    return request({
      url: `${Active_BASE_URL}/getFiles/${activeId}`,
      method: "get",
      headers: {
        "Content-Type": "multipart/form-data",
      },
    });
  }
}

export default ActiveAPI;

/** 活动查询参数 */
export interface ActiveQuery {
  /** 活动id */
  ins_id?: number;
  /** 搜索关键字 */
  keywords?: string;
  /** 登录账号 */
  account?: string;
  /** 状态 */
  status?: number;
}

/** 活动table字段 */
export interface ActiveVO {
  /** 活动ID(新增不填) */
  id?: number;
  /** 活动名称 */
  name?: string;
  /** 考试类型 */
  type: number;
  /** 报名开始时间 */
  apply_start: number;
  /** 报名结束时间 */
  apply_end: number;
  /** 活动开始时间 */
  start_time: number;
  /** 活动结束时间 */
  end_time: number;
  /** 活动介绍 */
  introduce: string;
  /** 活动创建时间 */
  createTime: string;
  /** 考场编码 */
  code: number;
  /** 状态(1:启用；0：禁用) */
  status?: number;
}

/** 活动表单类型 */
export interface ActiveForm {
  /** 活动ID(新增不填) */
  id?: number;
  /** 活动名称 */
  name?: string;
  /** 考试类型 */
  type: number;
  /** 报名开始时间 */
  apply_start: number;
  /** 报名结束时间 */
  apply_end: number;
  /** 活动开始时间 */
  start_time: number;
  /** 活动结束时间 */
  end_time: number;
  /** 活动介绍 */
  introduce: string;
  /**执考考官**/
  examiner: number[];
  /** 考场编码 */
  code: number;
  /** 状态(1:启用；0：禁用) */
  status?: number;
}
